package com.github.pig.admin.model.entity;

import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;

/**
 * <p>
 * 缴费记录表
 * </p>
 *
 * @author xiaosa
 * @since 2018-07-23
 */
@TableName("payment_record")
public class PaymentRecord extends Model<PaymentRecord> {

    private static final long serialVersionUID = 1L;

    /**
     * 唯一标识
     */
    @TableId(value = "id",type = IdType.UUID)
    private String id;
    /**
     * 费用类型
     */
    @TableField("fee_type")
    private String feeType;

    /**
     * 收费方式
     */
    @TableField("fee_model")
    private String feeModel;
    /**
     * 支付时间
     */
    @TableField("pay_date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date payDate;
    /**
     * 支付金额
     */
    @TableField("pay_number")
    private Double payNumber;

    /**
     * 生活垃圾费支付金额
     */
    @TableField(exist = false)
    private Double shljPayNumber;
    /**
     * 生活垃圾费折扣
     */
    @TableField(exist = false)
    private Double shljZheKou;
    @TableField(exist = false)
    private String shljBeizhu;
    /**
     * 支付人
     */
    @TableField("pay_user")
    private String payUser;
    /**
     * 房屋ID
     */
    @TableField("house_id")
    private String houseId;
    /**
     * 时长（最小单位月）
     */
    @TableField("time_length")
    private Integer timeLength;
    /**
     * 删除标志
     */
    @TableField("del_flag")
    private String delFlag;
    /**
     * 微信订单号
     */
    @TableField("transaction_id")
    private String transactionId;
    /**
     * 商户订单号
     */
    @TableField("out_trade_no")
    private String outTradeNo;
    @TableField(exist = false)
    private String realname;
    @TableField(exist = false)
    private String name;
    @TableField(exist = false)
    private String label;
    @TableField(exist = false)
    private String userId;
    @TableField(exist = false)
    private String payUserName;

    @TableField(exist = false)
    private String feeModelName;
    @TableField(exist = false)
    private String communityId;
    @TableField(exist = false)
    private String buildingId;
    @TableField(exist = false)
    private String unitId;

    /**
     * 起始时间
     */
    @TableField("valid_date")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date validDate;

    /**
     * 结束时间
     */
    @TableField("invalid_date")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date invalidDate;

    /**
     * 实用量
     */
    @TableField("used_number")
    private Double usedNumber;
    /**
     * 折扣
     */
    @TableField("zhekou")
    private Double zhekou;

    /**
     * 备注
     */
    @TableField("beizhu")
    private String beizhu;

    public String getLabel() {
        return label;
    }

    public void setLabel(String label) {
        this.label = label;
    }

    public String getRealname() {
        return realname;
    }

    public void setRealname(String realname) {
        this.realname = realname;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getFeeType() {
        return feeType;
    }

    public void setFeeType(String feeType) {
        this.feeType = feeType;
    }

    public Date getPayDate() {
        return payDate;
    }

    public void setPayDate(Date payDate) {
        this.payDate = payDate;
    }

    public Double getPayNumber() {
        return payNumber;
    }

    public void setPayNumber(Double payNumber) {
        this.payNumber = payNumber;
    }

    public String getPayUser() {
        return payUser;
    }

    public void setPayUser(String payUser) {
        this.payUser = payUser;
    }

    public String getHouseId() {
        return houseId;
    }

    public void setHouseId(String houseId) {
        this.houseId = houseId;
    }

    public Integer getTimeLength() {
        return timeLength;
    }

    public void setTimeLength(Integer timeLength) {
        this.timeLength = timeLength;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public String getShljBeizhu() {
        return shljBeizhu;
    }

    public void setShljBeizhu(String shljBeizhu) {
        this.shljBeizhu = shljBeizhu;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getPayUserName() {
        return payUserName;
    }

    public void setPayUserName(String payUserName) {
        this.payUserName = payUserName;
    }

    public String getFeeModel() {
        return feeModel;
    }

    public void setFeeModel(String feeModel) {
        this.feeModel = feeModel;
    }

    public String getFeeModelName() {
        return feeModelName;
    }

    public void setFeeModelName(String feeModelName) {
        this.feeModelName = feeModelName;
    }

    public Date getValidDate() {
        return validDate;
    }

    public void setValidDate(Date validDate) {
        this.validDate = validDate;
    }

    public Date getInvalidDate() {
        return invalidDate;
    }

    public void setInvalidDate(Date invalidDate) {
        this.invalidDate = invalidDate;
    }

    public Double getZhekou() {
        return zhekou;
    }

    public void setZhekou(Double zhekou) {
        this.zhekou = zhekou;
    }

    public String getBeizhu() {
        return beizhu;
    }

    public void setBeizhu(String beizhu) {
        this.beizhu = beizhu;
    }

    public Double getUsedNumber() {
        return usedNumber;
    }

    public void setUsedNumber(Double usedNumber) {
        this.usedNumber = usedNumber;
    }

    public Double getShljPayNumber() {
        return shljPayNumber;
    }

    public void setShljPayNumber(Double shljPayNumber) {
        this.shljPayNumber = shljPayNumber;
    }

    public Double getShljZheKou() {
        return shljZheKou;
    }

    public void setShljZheKou(Double shljZheKou) {
        this.shljZheKou = shljZheKou;
    }

    public String getCommunityId() {
        return communityId;
    }

    public void setCommunityId(String communityId) {
        this.communityId = communityId;
    }

    public String getBuildingId() {
        return buildingId;
    }

    public void setBuildingId(String buildingId) {
        this.buildingId = buildingId;
    }

    public String getUnitId() {
        return unitId;
    }

    public void setUnitId(String unitId) {
        this.unitId = unitId;
    }

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    @Override
    public String toString() {
        return "PaymentRecord{" +
        ", id=" + id +
        ", feeType=" + feeType +
        ", payDate=" + payDate +
        ", payNumber=" + payNumber +
        ", payUser=" + payUser +
        ", houseId=" + houseId +
        ", timeLength=" + timeLength +
        ", delFlag=" + delFlag +
        ", transactionId=" + transactionId +
        ", outTradeNo=" + outTradeNo +
        "}";
    }
}
